#undef  xuser
#define xuser mixc::math_sqrt::inc
#include"configure/lookup_table.hpp"
#include"define/base_type.hpp"
#include"macro/xexport.hpp"
#include"math/literal.hpp"
#include"utils/mfxx.hpp"

namespace mixc::math_sqrt::inc{
    using namespace literal;
}

namespace mixc::math_sqrt::origin{
    #if xuse_math_sqrt_lut6x16
    constexpr uxx step = 4;
    constexpr f64 lut[][1 << step][2] = {
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.411764705882352941e-01, 1.030776406404415137e+00}, {8.888888888888888889e-01, 1.060660171779821287e+00}, {8.421052631578947368e-01, 1.089724735885168388e+00}, {8.000000000000000000e-01, 1.118033988749894848e+00}, {7.619047619047619048e-01, 1.145643923738960002e+00}, {7.272727272727272727e-01, 1.172603939955857389e+00}, {6.956521739130434783e-01, 1.198957880828179885e+00}, {6.666666666666666667e-01, 1.224744871391589049e+00}, {6.400000000000000000e-01, 1.250000000000000000e+00}, {6.153846153846153846e-01, 1.274754878398196207e+00}, {5.925925925925925926e-01, 1.299038105676657970e+00}, {5.714285714285714286e-01, 1.322875655532295295e+00}, {5.517241379310344827e-01, 1.346291201783626008e+00}, {5.333333333333333334e-01, 1.369306393762915284e+00}, {5.161290322580645161e-01, 1.391941090707505481e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.961089494163424125e-01, 1.001951221367587335e+00}, {9.922480620155038760e-01, 1.003898650263063159e+00}, {9.884169884169884170e-01, 1.005842308714442574e+00}, {9.846153846153846154e-01, 1.007782218537318707e+00}, {9.808429118773946360e-01, 1.009718401337719506e+00}, {9.770992366412213741e-01, 1.011650878514915342e+00}, {9.733840304182509506e-01, 1.013579671264178423e+00}, {9.696969696969696970e-01, 1.015504800579495045e+00}, {9.660377358490566038e-01, 1.017426287256231649e+00}, {9.624060150375939850e-01, 1.019344151893755655e+00}, {9.588014981273408240e-01, 1.021258414898011991e+00}, {9.552238805970149254e-01, 1.023169096484056246e+00}, {9.516728624535315985e-01, 1.025076216678545323e+00}, {9.481481481481481482e-01, 1.026979795322186463e+00}, {9.446494464944649446e-01, 1.028879852072145497e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.997559189650964120e-01, 1.000122062862828759e+00}, {9.995119570522205954e-01, 1.000244110829951350e+00}, {9.992681141741888266e-01, 1.000366143906819749e+00}, {9.990243902439024390e-01, 1.000488162098882607e+00}, {9.987807851743477201e-01, 1.000610165411585253e+00}, {9.985372988785958069e-01, 1.000732153850369694e+00}, {9.982939312698025835e-01, 1.000854127420674626e+00}, {9.980506822612085770e-01, 1.000976086127935426e+00}, {9.978075517661388550e-01, 1.001098029977584163e+00}, {9.975645396980029226e-01, 1.001219958975049598e+00}, {9.973216459702946190e-01, 1.001341873125757185e+00}, {9.970788704965920156e-01, 1.001463772435129078e+00}, {9.968362131905573132e-01, 1.001585656908584130e+00}, {9.965936739659367397e-01, 1.001707526551537897e+00}, {9.963512527365604476e-01, 1.001829381369402641e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.999847414437645910e-01, 1.000007629365427642e+00}, {9.999694833531691538e-01, 1.000015258672648955e+00}, {9.999542257281923740e-01, 1.000022887921665271e+00}, {9.999389685688129387e-01, 1.000030517112477923e+00}, {9.999237118750095360e-01, 1.000038146245088243e+00}, {9.999084556467608556e-01, 1.000045775319497562e+00}, {9.998931998840455884e-01, 1.000053404335707214e+00}, {9.998779445868424265e-01, 1.000061033293718529e+00}, {9.998626897551300633e-01, 1.000068662193532840e+00}, {9.998474353888871937e-01, 1.000076291035151478e+00}, {9.998321814880925138e-01, 1.000083919818575775e+00}, {9.998169280527247208e-01, 1.000091548543807063e+00}, {9.998016750827625135e-01, 1.000099177210846674e+00}, {9.997864225781845919e-01, 1.000106805819695940e+00}, {9.997711705389696572e-01, 1.000114434370356191e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.999990463265930876e-01, 1.000000476837044516e+00}, {9.999980926550051594e-01, 1.000000953673861659e+00}, {9.999971389852362101e-01, 1.000001430510451429e+00}, {9.999961853172862347e-01, 1.000001907346813827e+00}, {9.999952316511552279e-01, 1.000002384182948851e+00}, {9.999942779868431844e-01, 1.000002861018856504e+00}, {9.999933243243500991e-01, 1.000003337854536785e+00}, {9.999923706636759668e-01, 1.000003814689989695e+00}, {9.999914170048207823e-01, 1.000004291525215234e+00}, {9.999904633477845403e-01, 1.000004768360213402e+00}, {9.999895096925672357e-01, 1.000005245194984199e+00}, {9.999885560391688633e-01, 1.000005722029527627e+00}, {9.999876023875894178e-01, 1.000006198863843684e+00}, {9.999866487378288941e-01, 1.000006675697932372e+00}, {9.999856950898872869e-01, 1.000007152531793691e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.999999403953587773e-01, 1.000000029802321944e+00}, {9.999998807907246601e-01, 1.000000059604642999e+00}, {9.999998211860976483e-01, 1.000000089406963166e+00}, {9.999997615814777419e-01, 1.000000119209282445e+00}, {9.999997019768649409e-01, 1.000000149011600836e+00}, {9.999996423722592453e-01, 1.000000178813918339e+00}, {9.999995827676606552e-01, 1.000000208616234953e+00}, {9.999995231630691704e-01, 1.000000238418550680e+00}, {9.999994635584847911e-01, 1.000000268220865518e+00}, {9.999994039539075172e-01, 1.000000298023179468e+00}, {9.999993443493373488e-01, 1.000000327825492530e+00}, {9.999992847447742857e-01, 1.000000357627804703e+00}, {9.999992251402183280e-01, 1.000000387430115989e+00}, {9.999991655356694758e-01, 1.000000417232426386e+00}, {9.999991059311277290e-01, 1.000000447034735895e+00}, },
    };
    #elif xuse_math_sqrt_lut3x256
    constexpr uxx step = 8;
    constexpr f64 lut[][1 << step][2] = {
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.961089494163424125e-01, 1.001951221367587335e+00}, {9.922480620155038760e-01, 1.003898650263063159e+00}, {9.884169884169884170e-01, 1.005842308714442574e+00}, {9.846153846153846154e-01, 1.007782218537318707e+00}, {9.808429118773946360e-01, 1.009718401337719506e+00}, {9.770992366412213741e-01, 1.011650878514915342e+00}, {9.733840304182509506e-01, 1.013579671264178423e+00}, {9.696969696969696970e-01, 1.015504800579495045e+00}, {9.660377358490566038e-01, 1.017426287256231649e+00}, {9.624060150375939850e-01, 1.019344151893755655e+00}, {9.588014981273408240e-01, 1.021258414898011991e+00}, {9.552238805970149254e-01, 1.023169096484056246e+00}, {9.516728624535315985e-01, 1.025076216678545323e+00}, {9.481481481481481482e-01, 1.026979795322186463e+00}, {9.446494464944649446e-01, 1.028879852072145497e+00}, {9.411764705882352941e-01, 1.030776406404415137e+00}, {9.377289377289377289e-01, 1.032669477616144129e+00}, {9.343065693430656934e-01, 1.034559084827928037e+00}, {9.309090909090909091e-01, 1.036445246986062453e+00}, {9.275362318840579710e-01, 1.038327982864759357e+00}, {9.241877256317689531e-01, 1.040207311068327379e+00}, {9.208633093525179856e-01, 1.042083250033316676e+00}, {9.175627240143369176e-01, 1.043955818030629110e+00}, {9.142857142857142857e-01, 1.045825033167594435e+00}, {9.110320284697508897e-01, 1.047690913390013133e+00}, {9.078014184397163121e-01, 1.049553476484166575e+00}, {9.045936395759717314e-01, 1.051412740078795127e+00}, {9.014084507042253521e-01, 1.053268721647044829e+00}, {8.982456140350877193e-01, 1.055121438508383261e+00}, {8.951048951048951049e-01, 1.056970907830485181e+00}, {8.919860627177700348e-01, 1.058817146631088516e+00}, {8.888888888888888889e-01, 1.060660171779821287e+00}, {8.858131487889273356e-01, 1.062500000000000000e+00}, {8.827586206896551724e-01, 1.064336647870400073e+00}, {8.797250859106529210e-01, 1.066170131826998800e+00}, {8.767123287671232877e-01, 1.068000468164691396e+00}, {8.737201365187713310e-01, 1.069827673038980610e+00}, {8.707482993197278912e-01, 1.071651762467640418e+00}, {8.677966101694915254e-01, 1.073472752332354265e+00}, {8.648648648648648648e-01, 1.075290658380328347e+00}, {8.619528619528619528e-01, 1.077105496225880374e+00}, {8.590604026845637584e-01, 1.078917281352004297e+00}, {8.561872909698996656e-01, 1.080726029111911415e+00}, {8.533333333333333334e-01, 1.082531754730548308e+00}, {8.504983388704318937e-01, 1.084334473306092026e+00}, {8.476821192052980133e-01, 1.086134199811422935e+00}, {8.448844884488448845e-01, 1.087930949095575643e+00}, {8.421052631578947368e-01, 1.089724735885168388e+00}, {8.393442622950819672e-01, 1.091515574785811290e+00}, {8.366013071895424837e-01, 1.093303480283493838e+00}, {8.338762214983713355e-01, 1.095088466745951991e+00}, {8.311688311688311688e-01, 1.096870548424015258e+00}, {8.284789644012944984e-01, 1.098649739452934108e+00}, {8.258064516129032258e-01, 1.100426053853688072e+00}, {8.231511254019292604e-01, 1.102199505534274861e+00}, {8.205128205128205128e-01, 1.103970108290980857e+00}, {8.178913738019169329e-01, 1.105737875809633284e+00}, {8.152866242038216560e-01, 1.107502821666834400e+00}, {8.126984126984126984e-01, 1.109264959331178008e+00}, {8.101265822784810126e-01, 1.111024302164448606e+00}, {8.075709779179810726e-01, 1.112780863422803475e+00}, {8.050314465408805031e-01, 1.114534656257937993e+00}, {8.025078369905956113e-01, 1.116285693718234481e+00}, {8.000000000000000000e-01, 1.118033988749894848e+00}, {7.975077881619937695e-01, 1.119779554198057324e+00}, {7.950310559006211180e-01, 1.121522402807897547e+00}, {7.925696594427244582e-01, 1.123262547225714279e+00}, {7.901234567901234568e-01, 1.125000000000000000e+00}, {7.876923076923076923e-01, 1.126734773582496654e+00}, {7.852760736196319019e-01, 1.128466880329236778e+00}, {7.828746177370030581e-01, 1.130196332501570278e+00}, {7.804878048780487805e-01, 1.131923142267177078e+00}, {7.781155015197568389e-01, 1.133647321701065900e+00}, {7.757575757575757576e-01, 1.135368882786559375e+00}, {7.734138972809667674e-01, 1.137087837416265745e+00}, {7.710843373493975904e-01, 1.138804197393037360e+00}, {7.687687687687687688e-01, 1.140517974430916192e+00}, {7.664670658682634731e-01, 1.142229180156066578e+00}, {7.641791044776119403e-01, 1.143937826107695418e+00}, {7.619047619047619048e-01, 1.145643923738960002e+00}, {7.596439169139465876e-01, 1.147347484417863706e+00}, {7.573964497041420118e-01, 1.149048519428139727e+00}, {7.551622418879056047e-01, 1.150747039970123060e+00}, {7.529411764705882353e-01, 1.152443057161610914e+00}, {7.507331378299120235e-01, 1.154136582038711742e+00}, {7.485380116959064328e-01, 1.155827625556683084e+00}, {7.463556851311953353e-01, 1.157516198590758383e+00}, {7.441860465116279070e-01, 1.159202311936962969e+00}, {7.420289855072463768e-01, 1.160885976312919373e+00}, {7.398843930635838150e-01, 1.162567202358642148e+00}, {7.377521613832853026e-01, 1.164246000637322353e+00}, {7.356321839080459770e-01, 1.165922381636101881e+00}, {7.335243553008595989e-01, 1.167596355766837772e+00}, {7.314285714285714286e-01, 1.169267933366856683e+00}, {7.293447293447293447e-01, 1.170937124699699664e+00}, {7.272727272727272727e-01, 1.172603939955857389e+00}, {7.252124645892351275e-01, 1.174268389253496000e+00}, {7.231638418079096045e-01, 1.175930482639173701e+00}, {7.211267605633802817e-01, 1.177590230088548246e+00}, {7.191011235955056180e-01, 1.179247641507075476e+00}, {7.170868347338935574e-01, 1.180902726730699018e+00}, {7.150837988826815643e-01, 1.182555495526531304e+00}, {7.130919220055710306e-01, 1.184205957593526043e+00}, {7.111111111111111111e-01, 1.185854122563142249e+00}, {7.091412742382271468e-01, 1.187500000000000000e+00}, {7.071823204419889503e-01, 1.189143599402528004e+00}, {7.052341597796143251e-01, 1.190784930203603139e+00}, {7.032967032967032967e-01, 1.192424001771182061e+00}, {7.013698630136986301e-01, 1.194060823408925011e+00}, {6.994535519125683060e-01, 1.195695404356811936e+00}, {6.975476839237057221e-01, 1.197327753791751041e+00}, {6.956521739130434783e-01, 1.198957880828179885e+00}, {6.937669376693766938e-01, 1.200585794518659129e+00}, {6.918918918918918919e-01, 1.202211503854459047e+00}, {6.900269541778975741e-01, 1.203835017766138916e+00}, {6.881720430107526882e-01, 1.205456345124119374e+00}, {6.863270777479892761e-01, 1.207075494739247865e+00}, {6.844919786096256685e-01, 1.208692475363357261e+00}, {6.826666666666666667e-01, 1.210307295689817777e+00}, {6.808510638297872340e-01, 1.211919964354082253e+00}, {6.790450928381962864e-01, 1.213530489934224932e+00}, {6.772486772486772487e-01, 1.215138880951473793e+00}, {6.754617414248021108e-01, 1.216745145870736564e+00}, {6.736842105263157895e-01, 1.218349293101120488e+00}, {6.719160104986876640e-01, 1.219951330996445940e+00}, {6.701570680628272251e-01, 1.221551267855753977e+00}, {6.684073107049608355e-01, 1.223149111923807922e+00}, {6.666666666666666667e-01, 1.224744871391589049e+00}, {6.649350649350649351e-01, 1.226338554396786467e+00}, {6.632124352331606218e-01, 1.227930169024281283e+00}, {6.614987080103359173e-01, 1.229519723306625122e+00}, {6.597938144329896907e-01, 1.231107225224513090e+00}, {6.580976863753213367e-01, 1.232692682707251248e+00}, {6.564102564102564103e-01, 1.234276103633218689e+00}, {6.547314578005115089e-01, 1.235857495830324282e+00}, {6.530612244897959184e-01, 1.237436867076458168e+00}, {6.513994910941475827e-01, 1.239014225099938068e+00}, {6.497461928934010152e-01, 1.240589577579950492e+00}, {6.481012658227848101e-01, 1.242162932146986907e+00}, {6.464646464646464646e-01, 1.243734296383274943e+00}, {6.448362720403022670e-01, 1.245303677823204696e+00}, {6.432160804020100502e-01, 1.246871083953750208e+00}, {6.416040100250626566e-01, 1.248436522214886182e+00}, {6.400000000000000000e-01, 1.250000000000000000e+00}, {6.384039900249376558e-01, 1.251561524656299108e+00}, {6.368159203980099502e-01, 1.253121103485213834e+00}, {6.352357320099255583e-01, 1.254678743742795700e+00}, {6.336633663366336634e-01, 1.256234452640111284e+00}, {6.320987654320987655e-01, 1.257788237343631704e+00}, {6.305418719211822660e-01, 1.259340104975617776e+00}, {6.289926289926289926e-01, 1.260890062614500900e+00}, {6.274509803921568628e-01, 1.262438117295259744e+00}, {6.259168704156479218e-01, 1.263984276009792774e+00}, {6.243902439024390244e-01, 1.265528545707286683e+00}, {6.228710462287104623e-01, 1.267070933294580789e+00}, {6.213592233009708738e-01, 1.268611445636527434e+00}, {6.198547215496368039e-01, 1.270150089556348455e+00}, {6.183574879227053140e-01, 1.271686871835987776e+00}, {6.168674698795180723e-01, 1.273221799216460164e+00}, {6.153846153846153846e-01, 1.274754878398196207e+00}, {6.139088729016786571e-01, 1.276286116041383567e+00}, {6.124401913875598086e-01, 1.277815518766304544e+00}, {6.109785202863961814e-01, 1.279343093153670017e+00}, {6.095238095238095238e-01, 1.280868845744949798e+00}, {6.080760095011876485e-01, 1.282392783042699441e+00}, {6.066350710900473934e-01, 1.283914911510883575e+00}, {6.052009456264775414e-01, 1.285435237575195773e+00}, {6.037735849056603774e-01, 1.286953767623375040e+00}, {6.023529411764705882e-01, 1.288470508005518922e+00}, {6.009389671361502347e-01, 1.289985465034393324e+00}, {5.995316159250585480e-01, 1.291498644985739038e+00}, {5.981308411214953271e-01, 1.293010054098575059e+00}, {5.967365967365967366e-01, 1.294519698575498696e+00}, {5.953488372093023256e-01, 1.296027584582982555e+00}, {5.939675174013921114e-01, 1.297533718251668402e+00}, {5.925925925925925926e-01, 1.299038105676657970e+00}, {5.912240184757505774e-01, 1.300540752917800727e+00}, {5.898617511520737327e-01, 1.302041665999978666e+00}, {5.885057471264367816e-01, 1.303540850913388138e+00}, {5.871559633027522936e-01, 1.305038313613818772e+00}, {5.858123569794050343e-01, 1.306534060022929521e+00}, {5.844748858447488585e-01, 1.308028096028521858e+00}, {5.831435079726651481e-01, 1.309520427484810181e+00}, {5.818181818181818182e-01, 1.311011060212689434e+00}, {5.804988662131519275e-01, 1.312500000000000000e+00}, {5.791855203619909503e-01, 1.313987252601789893e+00}, {5.778781038374717833e-01, 1.315472823740574277e+00}, {5.765765765765765766e-01, 1.316956719106592356e+00}, {5.752808988764044944e-01, 1.318438944358061656e+00}, {5.739910313901345291e-01, 1.319919505121429744e+00}, {5.727069351230425056e-01, 1.321398406991623401e+00}, {5.714285714285714286e-01, 1.322875655532295295e+00}, {5.701559020044543430e-01, 1.324351256276068173e+00}, {5.688888888888888889e-01, 1.325825214724776608e+00}, {5.676274944567627494e-01, 1.327297536349706331e+00}, {5.663716814159292035e-01, 1.328768226591831176e+00}, {5.651214128035320088e-01, 1.330237290862047665e+00}, {5.638766519823788546e-01, 1.331704734541407268e+00}, {5.626373626373626374e-01, 1.333170562981346359e+00}, {5.614035087719298246e-01, 1.334634781503913901e+00}, {5.601750547045951860e-01, 1.336097395401996882e+00}, {5.589519650655021834e-01, 1.337558409939543537e+00}, {5.577342047930283224e-01, 1.339017830351784375e+00}, {5.565217391304347826e-01, 1.340475661845451038e+00}, {5.553145336225596529e-01, 1.341931909598993029e+00}, {5.541125541125541126e-01, 1.343386578762792315e+00}, {5.529157667386609071e-01, 1.344839674459375845e+00}, {5.517241379310344827e-01, 1.346291201783626008e+00}, {5.505376344086021505e-01, 1.347741165802989042e+00}, {5.493562231759656652e-01, 1.349189571557681437e+00}, {5.481798715203426124e-01, 1.350636424060894339e+00}, {5.470085470085470086e-01, 1.352081728298995985e+00}, {5.458422174840085288e-01, 1.353525489231732200e+00}, {5.446808510638297872e-01, 1.354967711792424964e+00}, {5.435244161358811040e-01, 1.356408400888169079e+00}, {5.423728813559322034e-01, 1.357847561400026966e+00}, {5.412262156448202960e-01, 1.359285198183221592e+00}, {5.400843881856540084e-01, 1.360721316067327579e+00}, {5.389473684210526316e-01, 1.362155919856460485e+00}, {5.378151260504201681e-01, 1.363589014329464301e+00}, {5.366876310272536688e-01, 1.365020604240097176e+00}, {5.355648535564853556e-01, 1.366450694317215384e+00}, {5.344467640918580376e-01, 1.367879289264955572e+00}, {5.333333333333333334e-01, 1.369306393762915284e+00}, {5.322245322245322245e-01, 1.370732012466331801e+00}, {5.311203319502074689e-01, 1.372156150006259309e+00}, {5.300207039337474120e-01, 1.373578810989744410e+00}, {5.289256198347107438e-01, 1.375000000000000000e+00}, {5.278350515463917526e-01, 1.376419721596577531e+00}, {5.267489711934156379e-01, 1.377837980315537680e+00}, {5.256673511293634497e-01, 1.379254780669619430e+00}, {5.245901639344262295e-01, 1.380670127148407597e+00}, {5.235173824130879346e-01, 1.382084024218498808e+00}, {5.224489795918367347e-01, 1.383496476323665958e+00}, {5.213849287169042770e-01, 1.384907487885021149e+00}, {5.203252032520325203e-01, 1.386317063301177145e+00}, {5.192697768762677485e-01, 1.387725206948407347e+00}, {5.182186234817813765e-01, 1.389131923180804308e+00}, {5.171717171717171717e-01, 1.390537216330436803e+00}, {5.161290322580645161e-01, 1.391941090707505481e+00}, {5.150905432595573441e-01, 1.393343550600497092e+00}, {5.140562248995983936e-01, 1.394744600276337331e+00}, {5.130260521042084168e-01, 1.396144243980542291e+00}, {5.120000000000000000e-01, 1.397542485937368560e+00}, {5.109780439121756487e-01, 1.398939330349961960e+00}, {5.099601593625498008e-01, 1.400334781400504956e+00}, {5.089463220675944334e-01, 1.401728843250362741e+00}, {5.079365079365079365e-01, 1.403121520040228020e+00}, {5.069306930693069307e-01, 1.404512815890264492e+00}, {5.059288537549407114e-01, 1.405902734900249065e+00}, {5.049309664694280079e-01, 1.407291281149712801e+00}, {5.039370078740157480e-01, 1.408678458698080610e+00}, {5.029469548133595285e-01, 1.410064271584809711e+00}, {5.019607843137254902e-01, 1.411448723829526866e+00}, {5.009784735812133072e-01, 1.412831819432164403e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.999847414437645910e-01, 1.000007629365427642e+00}, {9.999694833531691538e-01, 1.000015258672648955e+00}, {9.999542257281923740e-01, 1.000022887921665271e+00}, {9.999389685688129387e-01, 1.000030517112477923e+00}, {9.999237118750095360e-01, 1.000038146245088243e+00}, {9.999084556467608556e-01, 1.000045775319497562e+00}, {9.998931998840455884e-01, 1.000053404335707214e+00}, {9.998779445868424265e-01, 1.000061033293718529e+00}, {9.998626897551300633e-01, 1.000068662193532840e+00}, {9.998474353888871937e-01, 1.000076291035151478e+00}, {9.998321814880925138e-01, 1.000083919818575775e+00}, {9.998169280527247208e-01, 1.000091548543807063e+00}, {9.998016750827625135e-01, 1.000099177210846674e+00}, {9.997864225781845919e-01, 1.000106805819695940e+00}, {9.997711705389696572e-01, 1.000114434370356191e+00}, {9.997559189650964120e-01, 1.000122062862828759e+00}, {9.997406678565435602e-01, 1.000129691297114976e+00}, {9.997254172132898069e-01, 1.000137319673216174e+00}, {9.997101670353138586e-01, 1.000144947991133683e+00}, {9.996949173225944231e-01, 1.000152576250868835e+00}, {9.996796680751102095e-01, 1.000160204452422962e+00}, {9.996644192928399280e-01, 1.000167832595797394e+00}, {9.996491709757622905e-01, 1.000175460680993463e+00}, {9.996339231238560098e-01, 1.000183088708012499e+00}, {9.996186757370998002e-01, 1.000190716676855835e+00}, {9.996034288154723773e-01, 1.000198344587524800e+00}, {9.995881823589524579e-01, 1.000205972440020726e+00}, {9.995729363675187603e-01, 1.000213600234344944e+00}, {9.995576908411500038e-01, 1.000221227970498784e+00}, {9.995424457798249092e-01, 1.000228855648483579e+00}, {9.995272011835221986e-01, 1.000236483268300657e+00}, {9.995119570522205954e-01, 1.000244110829951350e+00}, {9.994967133858988241e-01, 1.000251738333436989e+00}, {9.994814701845356108e-01, 1.000259365778758904e+00}, {9.994662274481096826e-01, 1.000266993165918426e+00}, {9.994509851765997682e-01, 1.000274620494916886e+00}, {9.994357433699845973e-01, 1.000282247765755613e+00}, {9.994205020282429012e-01, 1.000289874978435938e+00}, {9.994052611513534121e-01, 1.000297502132959192e+00}, {9.993900207392948640e-01, 1.000305129229326705e+00}, {9.993747807920459917e-01, 1.000312756267539807e+00}, {9.993595413095855317e-01, 1.000320383247599829e+00}, {9.993443022918922216e-01, 1.000328010169508100e+00}, {9.993290637389448002e-01, 1.000335637033265950e+00}, {9.993138256507220079e-01, 1.000343263838874710e+00}, {9.992985880272025861e-01, 1.000350890586335711e+00}, {9.992833508683652776e-01, 1.000358517275650280e+00}, {9.992681141741888266e-01, 1.000366143906819749e+00}, {9.992528779446519783e-01, 1.000373770479845448e+00}, {9.992376421797334797e-01, 1.000381396994728706e+00}, {9.992224068794120786e-01, 1.000389023451470853e+00}, {9.992071720436665244e-01, 1.000396649850073218e+00}, {9.991919376724755675e-01, 1.000404276190537132e+00}, {9.991767037658179600e-01, 1.000411902472863924e+00}, {9.991614703236724551e-01, 1.000419528697054924e+00}, {9.991462373460178071e-01, 1.000427154863111460e+00}, {9.991310048328327718e-01, 1.000434780971034863e+00}, {9.991157727840961064e-01, 1.000442407020826462e+00}, {9.991005411997865691e-01, 1.000450033012487586e+00}, {9.990853100798829197e-01, 1.000457658946019564e+00}, {9.990700794243639191e-01, 1.000465284821423726e+00}, {9.990548492332083295e-01, 1.000472910638701402e+00}, {9.990396195063949145e-01, 1.000480536397853919e+00}, {9.990243902439024390e-01, 1.000488162098882607e+00}, {9.990091614457096691e-01, 1.000495787741788796e+00}, {9.989939331117953721e-01, 1.000503413326573814e+00}, {9.989787052421383169e-01, 1.000511038853238990e+00}, {9.989634778367172734e-01, 1.000518664321785653e+00}, {9.989482508955110129e-01, 1.000526289732215132e+00}, {9.989330244184983081e-01, 1.000533915084528756e+00}, {9.989177984056579328e-01, 1.000541540378727854e+00}, {9.989025728569686624e-01, 1.000549165614813753e+00}, {9.988873477724092731e-01, 1.000556790792787783e+00}, {9.988721231519585429e-01, 1.000564415912651273e+00}, {9.988568989955952508e-01, 1.000572040974405551e+00}, {9.988416753032981772e-01, 1.000579665978051944e+00}, {9.988264520750461037e-01, 1.000587290923591783e+00}, {9.988112293108178133e-01, 1.000594915811026395e+00}, {9.987960070105920902e-01, 1.000602540640357109e+00}, {9.987807851743477201e-01, 1.000610165411585253e+00}, {9.987655638020634897e-01, 1.000617790124712154e+00}, {9.987503428937181871e-01, 1.000625414779739142e+00}, {9.987351224492906018e-01, 1.000633039376667544e+00}, {9.987199024687595246e-01, 1.000640663915498689e+00}, {9.987046829521037473e-01, 1.000648288396233904e+00}, {9.986894638993020634e-01, 1.000655912818874518e+00}, {9.986742453103332673e-01, 1.000663537183421858e+00}, {9.986590271851761550e-01, 1.000671161489877253e+00}, {9.986438095238095238e-01, 1.000678785738242030e+00}, {9.986285923262121720e-01, 1.000686409928517516e+00}, {9.986133755923628994e-01, 1.000694034060705041e+00}, {9.985981593222405071e-01, 1.000701658134805930e+00}, {9.985829435158237974e-01, 1.000709282150821513e+00}, {9.985677281730915740e-01, 1.000716906108753116e+00}, {9.985525132940226417e-01, 1.000724530008602068e+00}, {9.985372988785958069e-01, 1.000732153850369694e+00}, {9.985220849267898770e-01, 1.000739777634057324e+00}, {9.985068714385836609e-01, 1.000747401359666284e+00}, {9.984916584139559686e-01, 1.000755025027197902e+00}, {9.984764458528856116e-01, 1.000762648636653505e+00}, {9.984612337553514024e-01, 1.000770272188034420e+00}, {9.984460221213321551e-01, 1.000777895681341975e+00}, {9.984308109508066850e-01, 1.000785519116577496e+00}, {9.984156002437538087e-01, 1.000793142493742310e+00}, {9.984003900001523438e-01, 1.000800765812837745e+00}, {9.983851802199811097e-01, 1.000808389073865128e+00}, {9.983699709032189266e-01, 1.000816012276825785e+00}, {9.983547620498446164e-01, 1.000823635421721043e+00}, {9.983395536598370020e-01, 1.000831258508552230e+00}, {9.983243457331749078e-01, 1.000838881537320671e+00}, {9.983091382698371593e-01, 1.000846504508027694e+00}, {9.982939312698025835e-01, 1.000854127420674626e+00}, {9.982787247330500084e-01, 1.000861750275262792e+00}, {9.982635186595582635e-01, 1.000869373071793520e+00}, {9.982483130493061797e-01, 1.000876995810268136e+00}, {9.982331079022725888e-01, 1.000884618490687966e+00}, {9.982179032184363243e-01, 1.000892241113054338e+00}, {9.982026989977762208e-01, 1.000899863677368576e+00}, {9.981874952402711141e-01, 1.000907486183632008e+00}, {9.981722919458998416e-01, 1.000915108631845961e+00}, {9.981570891146412416e-01, 1.000922731022011759e+00}, {9.981418867464741540e-01, 1.000930353354130729e+00}, {9.981266848413774197e-01, 1.000937975628204198e+00}, {9.981114833993298812e-01, 1.000945597844233490e+00}, {9.980962824203103821e-01, 1.000953220002219934e+00}, {9.980810819042977674e-01, 1.000960842102164854e+00}, {9.980658818512708832e-01, 1.000968464144069576e+00}, {9.980506822612085770e-01, 1.000976086127935426e+00}, {9.980354831340896977e-01, 1.000983708053763730e+00}, {9.980202844698930953e-01, 1.000991329921555814e+00}, {9.980050862685976213e-01, 1.000998951731313003e+00}, {9.979898885301821283e-01, 1.001006573483036624e+00}, {9.979746912546254701e-01, 1.001014195176728001e+00}, {9.979594944419065022e-01, 1.001021816812388460e+00}, {9.979442980920040809e-01, 1.001029438390019327e+00}, {9.979291022048970642e-01, 1.001037059909621927e+00}, {9.979139067805643111e-01, 1.001044681371197586e+00}, {9.978987118189846819e-01, 1.001052302774747629e+00}, {9.978835173201370385e-01, 1.001059924120273381e+00}, {9.978683232840002436e-01, 1.001067545407776168e+00}, {9.978531297105531617e-01, 1.001075166637257314e+00}, {9.978379365997746582e-01, 1.001082787808718146e+00}, {9.978227439516435999e-01, 1.001090408922159987e+00}, {9.978075517661388550e-01, 1.001098029977584163e+00}, {9.977923600432392929e-01, 1.001105650974992000e+00}, {9.977771687829237843e-01, 1.001113271914384821e+00}, {9.977619779851712011e-01, 1.001120892795763952e+00}, {9.977467876499604165e-01, 1.001128513619130718e+00}, {9.977315977772703052e-01, 1.001136134384486444e+00}, {9.977164083670797430e-01, 1.001143755091832454e+00}, {9.977012194193676070e-01, 1.001151375741170073e+00}, {9.976860309341127755e-01, 1.001158996332500625e+00}, {9.976708429112941284e-01, 1.001166616865825436e+00}, {9.976556553508905465e-01, 1.001174237341145829e+00}, {9.976404682528809122e-01, 1.001181857758463130e+00}, {9.976252816172441089e-01, 1.001189478117778663e+00}, {9.976100954439590215e-01, 1.001197098419093752e+00}, {9.975949097330045362e-01, 1.001204718662409721e+00}, {9.975797244843595403e-01, 1.001212338847727895e+00}, {9.975645396980029226e-01, 1.001219958975049598e+00}, {9.975493553739135729e-01, 1.001227579044376154e+00}, {9.975341715120703827e-01, 1.001235199055708888e+00}, {9.975189881124522444e-01, 1.001242819009049123e+00}, {9.975038051750380518e-01, 1.001250438904398184e+00}, {9.974886226998067001e-01, 1.001258058741757394e+00}, {9.974734406867370856e-01, 1.001265678521128078e+00}, {9.974582591358081062e-01, 1.001273298242511559e+00}, {9.974430780469986607e-01, 1.001280917905909161e+00}, {9.974278974202876493e-01, 1.001288537511322208e+00}, {9.974127172556539738e-01, 1.001296157058752024e+00}, {9.973975375530765368e-01, 1.001303776548199932e+00}, {9.973823583125342424e-01, 1.001311395979667256e+00}, {9.973671795340059961e-01, 1.001319015353155320e+00}, {9.973520012174707046e-01, 1.001326634668665447e+00}, {9.973368233629072758e-01, 1.001334253926198961e+00}, {9.973216459702946190e-01, 1.001341873125757185e+00}, {9.973064690396116446e-01, 1.001349492267341443e+00}, {9.972912925708372645e-01, 1.001357111350953057e+00}, {9.972761165639503918e-01, 1.001364730376593352e+00}, {9.972609410189299409e-01, 1.001372349344263650e+00}, {9.972457659357548275e-01, 1.001379968253965274e+00}, {9.972305913144039685e-01, 1.001387587105699548e+00}, {9.972154171548562821e-01, 1.001395205899467795e+00}, {9.972002434570906878e-01, 1.001402824635271338e+00}, {9.971850702210861064e-01, 1.001410443313111500e+00}, {9.971698974468214601e-01, 1.001418061932989603e+00}, {9.971547251342756721e-01, 1.001425680494906971e+00}, {9.971395532834276672e-01, 1.001433298998864926e+00}, {9.971243818942563713e-01, 1.001440917444864792e+00}, {9.971092109667407114e-01, 1.001448535832907891e+00}, {9.970940405008596163e-01, 1.001456154162995545e+00}, {9.970788704965920156e-01, 1.001463772435129078e+00}, {9.970637009539168403e-01, 1.001471390649309812e+00}, {9.970485318728130230e-01, 1.001479008805539069e+00}, {9.970333632532594970e-01, 1.001486626903818172e+00}, {9.970181950952351975e-01, 1.001494244944148443e+00}, {9.970030273987190604e-01, 1.001501862926531206e+00}, {9.969878601636900234e-01, 1.001509480850967781e+00}, {9.969726933901270252e-01, 1.001517098717459491e+00}, {9.969575270780090057e-01, 1.001524716526007660e+00}, {9.969423612273149064e-01, 1.001532334276613608e+00}, {9.969271958380236697e-01, 1.001539951969278657e+00}, {9.969120309101142396e-01, 1.001547569604004131e+00}, {9.968968664435655613e-01, 1.001555187180791351e+00}, {9.968817024383565811e-01, 1.001562804699641639e+00}, {9.968665388944662468e-01, 1.001570422160556317e+00}, {9.968513758118735074e-01, 1.001578039563536706e+00}, {9.968362131905573132e-01, 1.001585656908584130e+00}, {9.968210510304966157e-01, 1.001593274195699908e+00}, {9.968058893316703678e-01, 1.001600891424885364e+00}, {9.967907280940575236e-01, 1.001608508596141819e+00}, {9.967755673176370384e-01, 1.001616125709470594e+00}, {9.967604070023878690e-01, 1.001623742764873011e+00}, {9.967452471482889734e-01, 1.001631359762350392e+00}, {9.967300877553193107e-01, 1.001638976701904058e+00}, {9.967149288234578416e-01, 1.001646593583535330e+00}, {9.966997703526835278e-01, 1.001654210407245530e+00}, {9.966846123429753323e-01, 1.001661827173035980e+00}, {9.966694547943122196e-01, 1.001669443880907999e+00}, {9.966542977066731553e-01, 1.001677060530862911e+00}, {9.966391410800371063e-01, 1.001684677122902035e+00}, {9.966239849143830408e-01, 1.001692293657026694e+00}, {9.966088292096899284e-01, 1.001699910133238207e+00}, {9.965936739659367397e-01, 1.001707526551537897e+00}, {9.965785191831024467e-01, 1.001715142911927083e+00}, {9.965633648611660229e-01, 1.001722759214407088e+00}, {9.965482110001064428e-01, 1.001730375458979231e+00}, {9.965330575999026823e-01, 1.001737991645644834e+00}, {9.965179046605337185e-01, 1.001745607774405218e+00}, {9.965027521819785300e-01, 1.001753223845261703e+00}, {9.964876001642160962e-01, 1.001760839858215610e+00}, {9.964724486072253984e-01, 1.001768455813268259e+00}, {9.964572975109854187e-01, 1.001776071710420971e+00}, {9.964421468754751406e-01, 1.001783687549675067e+00}, {9.964269967006735491e-01, 1.001791303331031867e+00}, {9.964118469865596302e-01, 1.001798919054492692e+00}, {9.963966977331123713e-01, 1.001806534720058861e+00}, {9.963815489403107611e-01, 1.001814150327731695e+00}, {9.963664006081337895e-01, 1.001821765877512515e+00}, {9.963512527365604476e-01, 1.001829381369402641e+00}, {9.963361053255697280e-01, 1.001836996803403393e+00}, {9.963209583751406245e-01, 1.001844612179516091e+00}, {9.963058118852521322e-01, 1.001852227497742054e+00}, {9.962906658558832472e-01, 1.001859842758082604e+00}, {9.962755202870129673e-01, 1.001867457960539060e+00}, {9.962603751786202912e-01, 1.001875073105112741e+00}, {9.962452305306842193e-01, 1.001882688191804969e+00}, {9.962300863431837529e-01, 1.001890303220617062e+00}, {9.962149426160978947e-01, 1.001897918191550341e+00}, {9.961997993494056486e-01, 1.001905533104606125e+00}, {9.961846565430860200e-01, 1.001913147959785734e+00}, {9.961695141971180155e-01, 1.001920762757090487e+00}, {9.961543723114806427e-01, 1.001928377496521704e+00}, {9.961392308861529108e-01, 1.001935992178080705e+00}, {9.961240899211138302e-01, 1.001943606801768809e+00}, },
        {{1.000000000000000000e+00, 1.000000000000000000e+00}, {9.999999403953587773e-01, 1.000000029802321944e+00}, {9.999998807907246601e-01, 1.000000059604642999e+00}, {9.999998211860976483e-01, 1.000000089406963166e+00}, {9.999997615814777419e-01, 1.000000119209282445e+00}, {9.999997019768649409e-01, 1.000000149011600836e+00}, {9.999996423722592453e-01, 1.000000178813918339e+00}, {9.999995827676606552e-01, 1.000000208616234953e+00}, {9.999995231630691704e-01, 1.000000238418550680e+00}, {9.999994635584847911e-01, 1.000000268220865518e+00}, {9.999994039539075172e-01, 1.000000298023179468e+00}, {9.999993443493373488e-01, 1.000000327825492530e+00}, {9.999992847447742857e-01, 1.000000357627804703e+00}, {9.999992251402183280e-01, 1.000000387430115989e+00}, {9.999991655356694758e-01, 1.000000417232426386e+00}, {9.999991059311277290e-01, 1.000000447034735895e+00}, {9.999990463265930876e-01, 1.000000476837044516e+00}, {9.999989867220655516e-01, 1.000000506639352249e+00}, {9.999989271175451210e-01, 1.000000536441659094e+00}, {9.999988675130317958e-01, 1.000000566243965050e+00}, {9.999988079085255760e-01, 1.000000596046270118e+00}, {9.999987483040264616e-01, 1.000000625848574298e+00}, {9.999986886995344525e-01, 1.000000655650877590e+00}, {9.999986290950495489e-01, 1.000000685453179994e+00}, {9.999985694905717508e-01, 1.000000715255481510e+00}, {9.999985098861010580e-01, 1.000000745057782137e+00}, {9.999984502816374706e-01, 1.000000774860081876e+00}, {9.999983906771809886e-01, 1.000000804662380727e+00}, {9.999983310727316119e-01, 1.000000834464678690e+00}, {9.999982714682893407e-01, 1.000000864266975764e+00}, {9.999982118638541749e-01, 1.000000894069271951e+00}, {9.999981522594261144e-01, 1.000000923871567249e+00}, {9.999980926550051594e-01, 1.000000953673861659e+00}, {9.999980330505913097e-01, 1.000000983476155181e+00}, {9.999979734461845654e-01, 1.000001013278447815e+00}, {9.999979138417849265e-01, 1.000001043080739561e+00}, {9.999978542373923930e-01, 1.000001072883030418e+00}, {9.999977946330069648e-01, 1.000001102685320387e+00}, {9.999977350286286421e-01, 1.000001132487609468e+00}, {9.999976754242574247e-01, 1.000001162289897661e+00}, {9.999976158198933127e-01, 1.000001192092184966e+00}, {9.999975562155363061e-01, 1.000001221894471382e+00}, {9.999974966111864049e-01, 1.000001251696756911e+00}, {9.999974370068436089e-01, 1.000001281499041551e+00}, {9.999973774025079184e-01, 1.000001311301325303e+00}, {9.999973177981793333e-01, 1.000001341103608167e+00}, {9.999972581938578536e-01, 1.000001370905890143e+00}, {9.999971985895434791e-01, 1.000001400708171230e+00}, {9.999971389852362101e-01, 1.000001430510451429e+00}, {9.999970793809360465e-01, 1.000001460312730740e+00}, {9.999970197766429882e-01, 1.000001490115009163e+00}, {9.999969601723570353e-01, 1.000001519917286698e+00}, {9.999969005680781877e-01, 1.000001549719563345e+00}, {9.999968409638064455e-01, 1.000001579521839103e+00}, {9.999967813595418087e-01, 1.000001609324113973e+00}, {9.999967217552842772e-01, 1.000001639126387956e+00}, {9.999966621510338510e-01, 1.000001668928661049e+00}, {9.999966025467905303e-01, 1.000001698730933255e+00}, {9.999965429425543149e-01, 1.000001728533204573e+00}, {9.999964833383252048e-01, 1.000001758335475002e+00}, {9.999964237341032001e-01, 1.000001788137744543e+00}, {9.999963641298883007e-01, 1.000001817940013196e+00}, {9.999963045256805067e-01, 1.000001847742280961e+00}, {9.999962449214798180e-01, 1.000001877544547838e+00}, {9.999961853172862347e-01, 1.000001907346813827e+00}, {9.999961257130997567e-01, 1.000001937149078927e+00}, {9.999960661089203841e-01, 1.000001966951343139e+00}, {9.999960065047481168e-01, 1.000001996753606463e+00}, {9.999959469005829549e-01, 1.000002026555868899e+00}, {9.999958872964248983e-01, 1.000002056358130447e+00}, {9.999958276922739470e-01, 1.000002086160391106e+00}, {9.999957680881301011e-01, 1.000002115962650877e+00}, {9.999957084839933605e-01, 1.000002145764909761e+00}, {9.999956488798637253e-01, 1.000002175567167755e+00}, {9.999955892757411954e-01, 1.000002205369424862e+00}, {9.999955296716257708e-01, 1.000002235171681081e+00}, {9.999954700675174516e-01, 1.000002264973936411e+00}, {9.999954104634162377e-01, 1.000002294776190854e+00}, {9.999953508593221290e-01, 1.000002324578444408e+00}, {9.999952912552351258e-01, 1.000002354380697074e+00}, {9.999952316511552279e-01, 1.000002384182948851e+00}, {9.999951720470824353e-01, 1.000002413985199741e+00}, {9.999951124430167480e-01, 1.000002443787449742e+00}, {9.999950528389581660e-01, 1.000002473589698856e+00}, {9.999949932349066894e-01, 1.000002503391947081e+00}, {9.999949336308623181e-01, 1.000002533194194418e+00}, {9.999948740268250521e-01, 1.000002562996440866e+00}, {9.999948144227948914e-01, 1.000002592798686427e+00}, {9.999947548187718360e-01, 1.000002622600931099e+00}, {9.999946952147558860e-01, 1.000002652403174884e+00}, {9.999946356107470413e-01, 1.000002682205417780e+00}, {9.999945760067453018e-01, 1.000002712007659788e+00}, {9.999945164027506677e-01, 1.000002741809900907e+00}, {9.999944567987631390e-01, 1.000002771612141139e+00}, {9.999943971947827155e-01, 1.000002801414380482e+00}, {9.999943375908093973e-01, 1.000002831216618937e+00}, {9.999942779868431844e-01, 1.000002861018856504e+00}, {9.999942183828840769e-01, 1.000002890821093183e+00}, {9.999941587789320746e-01, 1.000002920623328974e+00}, {9.999940991749871776e-01, 1.000002950425563876e+00}, {9.999940395710493860e-01, 1.000002980227797891e+00}, {9.999939799671186996e-01, 1.000003010030031017e+00}, {9.999939203631951186e-01, 1.000003039832263255e+00}, {9.999938607592786428e-01, 1.000003069634494605e+00}, {9.999938011553692723e-01, 1.000003099436725066e+00}, {9.999937415514670072e-01, 1.000003129238954640e+00}, {9.999936819475718473e-01, 1.000003159041183325e+00}, {9.999936223436837927e-01, 1.000003188843411122e+00}, {9.999935627398028434e-01, 1.000003218645638031e+00}, {9.999935031359289994e-01, 1.000003248447864052e+00}, {9.999934435320622607e-01, 1.000003278250089185e+00}, {9.999933839282026273e-01, 1.000003308052313429e+00}, {9.999933243243500991e-01, 1.000003337854536785e+00}, {9.999932647205046763e-01, 1.000003367656759254e+00}, {9.999932051166663587e-01, 1.000003397458980834e+00}, {9.999931455128351464e-01, 1.000003427261201525e+00}, {9.999930859090110394e-01, 1.000003457063421329e+00}, {9.999930263051940377e-01, 1.000003486865640244e+00}, {9.999929667013841412e-01, 1.000003516667858272e+00}, {9.999929070975813501e-01, 1.000003546470075411e+00}, {9.999928474937856642e-01, 1.000003576272291662e+00}, {9.999927878899970836e-01, 1.000003606074507024e+00}, {9.999927282862156082e-01, 1.000003635876721499e+00}, {9.999926686824412381e-01, 1.000003665678935085e+00}, {9.999926090786739733e-01, 1.000003695481147784e+00}, {9.999925494749138138e-01, 1.000003725283359594e+00}, {9.999924898711607595e-01, 1.000003755085570516e+00}, {9.999924302674148106e-01, 1.000003784887780550e+00}, {9.999923706636759668e-01, 1.000003814689989695e+00}, {9.999923110599442284e-01, 1.000003844492197953e+00}, {9.999922514562195952e-01, 1.000003874294405322e+00}, {9.999921918525020672e-01, 1.000003904096611803e+00}, {9.999921322487916446e-01, 1.000003933898817396e+00}, {9.999920726450883271e-01, 1.000003963701022101e+00}, {9.999920130413921150e-01, 1.000003993503225917e+00}, {9.999919534377030080e-01, 1.000004023305428846e+00}, {9.999918938340210064e-01, 1.000004053107630886e+00}, {9.999918342303461100e-01, 1.000004082909832038e+00}, {9.999917746266783189e-01, 1.000004112712032302e+00}, {9.999917150230176330e-01, 1.000004142514231678e+00}, {9.999916554193640523e-01, 1.000004172316430165e+00}, {9.999915958157175770e-01, 1.000004202118627765e+00}, {9.999915362120782068e-01, 1.000004231920824476e+00}, {9.999914766084459419e-01, 1.000004261723020299e+00}, {9.999914170048207823e-01, 1.000004291525215234e+00}, {9.999913574012027279e-01, 1.000004321327409281e+00}, {9.999912977975917787e-01, 1.000004351129602439e+00}, {9.999912381939879348e-01, 1.000004380931794710e+00}, {9.999911785903911961e-01, 1.000004410733986092e+00}, {9.999911189868015627e-01, 1.000004440536176586e+00}, {9.999910593832190345e-01, 1.000004470338366192e+00}, {9.999909997796436115e-01, 1.000004500140554909e+00}, {9.999909401760752938e-01, 1.000004529942742739e+00}, {9.999908805725140813e-01, 1.000004559744929680e+00}, {9.999908209689599740e-01, 1.000004589547115734e+00}, {9.999907613654129720e-01, 1.000004619349300899e+00}, {9.999907017618730752e-01, 1.000004649151485176e+00}, {9.999906421583402836e-01, 1.000004678953668564e+00}, {9.999905825548145973e-01, 1.000004708755851065e+00}, {9.999905229512960162e-01, 1.000004738558032677e+00}, {9.999904633477845403e-01, 1.000004768360213402e+00}, {9.999904037442801696e-01, 1.000004798162393238e+00}, {9.999903441407829042e-01, 1.000004827964572186e+00}, {9.999902845372927440e-01, 1.000004857766750245e+00}, {9.999902249338096890e-01, 1.000004887568927417e+00}, {9.999901653303337392e-01, 1.000004917371103700e+00}, {9.999901057268648947e-01, 1.000004947173279096e+00}, {9.999900461234031553e-01, 1.000004976975453603e+00}, {9.999899865199485212e-01, 1.000005006777627222e+00}, {9.999899269165009922e-01, 1.000005036579799952e+00}, {9.999898673130605686e-01, 1.000005066381971795e+00}, {9.999898077096272501e-01, 1.000005096184142749e+00}, {9.999897481062010368e-01, 1.000005125986312816e+00}, {9.999896885027819287e-01, 1.000005155788481994e+00}, {9.999896288993699258e-01, 1.000005185590650284e+00}, {9.999895692959650282e-01, 1.000005215392817686e+00}, {9.999895096925672357e-01, 1.000005245194984199e+00}, {9.999894500891765485e-01, 1.000005274997149825e+00}, {9.999893904857929664e-01, 1.000005304799314562e+00}, {9.999893308824164896e-01, 1.000005334601478411e+00}, {9.999892712790471179e-01, 1.000005364403641372e+00}, {9.999892116756848515e-01, 1.000005394205803445e+00}, {9.999891520723296902e-01, 1.000005424007964629e+00}, {9.999890924689816342e-01, 1.000005453810124926e+00}, {9.999890328656406833e-01, 1.000005483612284334e+00}, {9.999889732623068376e-01, 1.000005513414442854e+00}, {9.999889136589800972e-01, 1.000005543216600486e+00}, {9.999888540556604619e-01, 1.000005573018757230e+00}, {9.999887944523479318e-01, 1.000005602820913086e+00}, {9.999887348490425069e-01, 1.000005632623068053e+00}, {9.999886752457441871e-01, 1.000005662425222132e+00}, {9.999886156424529726e-01, 1.000005692227375324e+00}, {9.999885560391688633e-01, 1.000005722029527627e+00}, {9.999884964358918591e-01, 1.000005751831679041e+00}, {9.999884368326219601e-01, 1.000005781633829568e+00}, {9.999883772293591663e-01, 1.000005811435979207e+00}, {9.999883176261034777e-01, 1.000005841238127957e+00}, {9.999882580228548943e-01, 1.000005871040275819e+00}, {9.999881984196134160e-01, 1.000005900842422793e+00}, {9.999881388163790429e-01, 1.000005930644568879e+00}, {9.999880792131517750e-01, 1.000005960446714077e+00}, {9.999880196099316122e-01, 1.000005990248858386e+00}, {9.999879600067185546e-01, 1.000006020051001807e+00}, {9.999879004035126023e-01, 1.000006049853144341e+00}, {9.999878408003137551e-01, 1.000006079655285986e+00}, {9.999877811971220130e-01, 1.000006109457426743e+00}, {9.999877215939373761e-01, 1.000006139259566611e+00}, {9.999876619907598443e-01, 1.000006169061705592e+00}, {9.999876023875894178e-01, 1.000006198863843684e+00}, {9.999875427844260964e-01, 1.000006228665980888e+00}, {9.999874831812698802e-01, 1.000006258468117204e+00}, {9.999874235781207690e-01, 1.000006288270252632e+00}, {9.999873639749787631e-01, 1.000006318072387172e+00}, {9.999873043718438624e-01, 1.000006347874520824e+00}, {9.999872447687160668e-01, 1.000006377676653587e+00}, {9.999871851655953763e-01, 1.000006407478785462e+00}, {9.999871255624817910e-01, 1.000006437280916449e+00}, {9.999870659593753109e-01, 1.000006467083046548e+00}, {9.999870063562759359e-01, 1.000006496885175759e+00}, {9.999869467531836660e-01, 1.000006526687304082e+00}, {9.999868871500985014e-01, 1.000006556489431516e+00}, {9.999868275470204418e-01, 1.000006586291558062e+00}, {9.999867679439494874e-01, 1.000006616093683721e+00}, {9.999867083408856382e-01, 1.000006645895808491e+00}, {9.999866487378288941e-01, 1.000006675697932372e+00}, {9.999865891347792551e-01, 1.000006705500055366e+00}, {9.999865295317367212e-01, 1.000006735302177471e+00}, {9.999864699287012926e-01, 1.000006765104298689e+00}, {9.999864103256729690e-01, 1.000006794906419018e+00}, {9.999863507226517506e-01, 1.000006824708538459e+00}, {9.999862911196376373e-01, 1.000006854510657012e+00}, {9.999862315166306292e-01, 1.000006884312774676e+00}, {9.999861719136307262e-01, 1.000006914114891453e+00}, {9.999861123106379283e-01, 1.000006943917007341e+00}, {9.999860527076522356e-01, 1.000006973719122341e+00}, {9.999859931046736480e-01, 1.000007003521236454e+00}, {9.999859335017021655e-01, 1.000007033323349677e+00}, {9.999858738987377882e-01, 1.000007063125462013e+00}, {9.999858142957805159e-01, 1.000007092927573461e+00}, {9.999857546928303488e-01, 1.000007122729684020e+00}, {9.999856950898872869e-01, 1.000007152531793691e+00}, {9.999856354869513300e-01, 1.000007182333902474e+00}, {9.999855758840224783e-01, 1.000007212136010369e+00}, {9.999855162811007316e-01, 1.000007241938117376e+00}, {9.999854566781860902e-01, 1.000007271740223495e+00}, {9.999853970752785538e-01, 1.000007301542328725e+00}, {9.999853374723781225e-01, 1.000007331344433067e+00}, {9.999852778694847964e-01, 1.000007361146536522e+00}, {9.999852182665985753e-01, 1.000007390948639088e+00}, {9.999851586637194594e-01, 1.000007420750740765e+00}, {9.999850990608474486e-01, 1.000007450552841555e+00}, {9.999850394579825429e-01, 1.000007480354941456e+00}, {9.999849798551247423e-01, 1.000007510157040470e+00}, {9.999849202522740468e-01, 1.000007539959138595e+00}, {9.999848606494304564e-01, 1.000007569761235832e+00}, {9.999848010465939712e-01, 1.000007599563332181e+00}, },

    };
    #endif

    extern f64 sqrt_unsafe(f64 x){
        using namespace inc;

        if (x == 0){
            return 0;
        }

        // sqrt(x) = sqrt(x.xxx * 2^exp) = sqrt(x.xxx) * 2^(exp/2)
        mf64 m          = mf64{x};
        mf64 right      = 1.0;
        mf64 left       = 0;
        mf64 result     = 0;
        ixx  exp        = m.real_exp_unsafe();
        ixx  new_e      = exp / 2;
        m.real_exp(0);

        // sqrt(x) = left:{sqrt(x / a0 / a1 ... / an)} * right:{sqrt(a0) * sqrt(a1) * ... * sqrt(an)}
        // 此算法通过查表让 left 趋近于 sqrt(1)
        for(uxx i = 0, shift = m.bits_of_mantissa() - step; i < sizeof(lut) / sizeof(lut[0]); i++, shift -= step){
            auto idx    = m.decimal >> shift;
            auto pair   = lut[i][idx];
            auto mdiv   = pair[0]; // 倒数乘法代替除法
            auto mul    = pair[1];
            m          *= mdiv;
            right      *= mul;

            // 浮点误差，理论上 m 应该始终不小于 1
            if (m < 1.0){
                break;
            }
        }

        // left -> 1 + 0.5 * (x - 1) when x -> 1
        // sqrt(x) = left * right
        left            = 1.0 + 0.5 * (m - 1);
        result          = left * right;
        result.real_exp(new_e);

        // 开平方前指数为奇数，指数除以 2 向下取整还需要 2^0.5
        if (exp & 1){
            result     *= exp > 0 ? sqrt_2 : sqrtr_2;
        }
        return result;
    }
}
